package com.itlong.cloud.sdk.dao;

import com.itlong.cloud.POJO.PO.PropertyRoleProjectPO;
import com.itlong.cloud.POJO.PO.PropertyUserInfoPO;
import com.itlong.cloud.POJO.VO.sdk.DeveloperAuthSafeSettingsVO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      SDK管理人员持久层
 * </desc>
 *
 * @createDate 2017/10/27
 */
@Mapper
@Repository
public interface ISDKServerOldPropertyUserDao extends IAbstractBaseDao<PropertyUserInfoPO> {

    /**
     * <desc>
     *      保存
     * <desc/>
     * @param
     * @return
     * @author Biao.R
     * @createDate 2017/11/1
     */
    Integer save(Map<String,Object> map);

    /**
     * <desc>
     *      根据参数查询property_role_project表
     * <desc/>
     * @param  params   查询参数集
     * @return  PropertyRoleProjectPO 返回PO对象
     * @author Biao.R
     * @createDate 2017/11/3
     */
    List<PropertyRoleProjectPO> getRoleProjectByParams(Map<String, Object> params);

    /**
     * <desc>
     *      根据参数查询property_role_project表
     * <desc/>
     * @param  params   查询参数集
     * @return  PropertyRoleProjectPO 返回PO对象
     * @author Biao.R
     * @createDate 2017/11/9
     */
    List<PropertyUserInfoPO> getUserByParams(Map<String, Object> params);

    /**
     * <desc>
     *      根据ProjectId,buildNum查询出该楼栋的最高楼层
     * <desc/>
     * @param
     * @return
     * @author JuGuang.S
     * @createDate 2018/12/14
     */
    Integer getBuildFloorNum(@Param("projectId") String projectId,@Param("buildNum") String buildNum);

    /**
     * <desc>
     *      云电梯SDK判断机器人是否有权限
     * <desc/>
     * @param params   查询参数集
     * @return
     * @author Qiang.S
     * @createDate 2019/01/03
     */
    Integer checkRobot(Map<String, Object> params);

    /**
     * <desc>
     *      判断机器人开发者机器人是否有权限
     * <desc/>
     * @param params   查询参数集
     * @return
     * @author Qiang.S
     * @createDate 2020/03/23
     */
    Integer checkRobotDevelopRobot(Map<String, Object> params);

    /**
     * <desc>
     *      获取物业用户信息，条件：userId
     * </desc>
     *
     * @param appid 即userId
     * @return 物业用户信息
     * @author wangzhi
     * @createDate 2018/12/19
     */
    PropertyUserInfoPO getPropertyUserByAppId(@Param("appid") String appid);

    /**
     * <desc>
     *      获取物业用户信息，条件：userName
     * </desc>
     *
     * @param appid 即userName
     * @return 物业用户信息
     * @author wangzhi
     * @createDate 2018/12/19
     */
    PropertyUserInfoPO getPropertyUserByUserName(@Param("appid") String appid);

    /**
     * <desc>
     *      获取开发者授权安全设置信息，条件：userId
     * </desc>
     *
     * @param appid 即userId
     * @return 开发者授权安全设置VO
     * @author wangzhi
     * @createDate 2018/12/19
     */
    DeveloperAuthSafeSettingsVO getSafeSettings(@Param("appid") String appid);
}
